<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS 选择器</title>
    <style>
        h2 {
            color: purple;
        }

        .highlit {
            background-color: yellow;
        }

        #header {
            font-size: 30px;
            color: orange;
        }

        /* 通用选择器 */
        * {
            font-family: 'KaiTi', serif;
            font-weight: bold;
        }

        /* 子元素选择器 */
        .father>.son {
            color: yellowgreen;
        }

        /* 后代选择器 */
        .father .grandson {
            color: brown;
            font-size: 25px;
        }

        /* 相邻兄弟选择器 */
        h3+p {
            background-color: red;
            font-size: 20px;
        }

        /* 伪类选择器 */
        .element:hover {
            background-color: lightblue;
        }

        /* 伪类选择器还可以用于
        选中父元素中的第一个子元素  ：first-child
        选中第n个子元素  ：nth-child(n)
        选中父元素中的最后一个子元素  ：last-child
        选择链接的不同状态  ：link、visited、hover、active
        选择表单元素的不同状态  ：focus、checked、disabled
        等
        */


        /* 伪元素选择器
            ::after
            ::before
            在选择元素之前或者之后插入虚拟的内容 */
    </style>
</head>

<body>
    <h1>不同类型的 CSS 选择器</h1>
    <h2>这是一个元素选择器示例</h2>
    <h3 class="highlit">这是一个类选择器示例</h3>
    <h3>这是另一个类选择器示例</h3>
    <h4 id="header">这是一个ID选择器示例</h4>
    <div class="father">
        <p class="son">这是一个子元素选择器示例</p>
        <div>
            <p class="grandson">这是一个后代选择器示例</p>
        </div>
    </div>
    <p>这是一个普通的 p 标签</p>
    <h3>这是一个相邻兄弟选择器示例</h3>
    <p>这是一个紧跟在 h3 标签后的 p 标签</p>
    <h3 class="element">这是一个伪类选择器示例</h3>
</body>

</html>